﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace T8作业
{
    public partial class Form1 : Form
    {
        DataSet ds = new DataSet();
        public Form1()
        {
            InitializeComponent();
        }
        
        private void connDatabase()
        {
            //创建连接字符串
            string connStr = "server=.;database=GameBoxDB; Integrated Security=true";
            //创建链接对象
            SqlConnection conn = new SqlConnection(connStr);
            //创建SQL命令对象
            string sql = "select *from Categories;select* from Products";
            //定义DataAdapter对象
            SqlDataAdapter dap = new SqlDataAdapter(sql, conn);
            //填充
            dap.Fill(ds);
            //关闭释放连接对象
            conn.Close();
            conn.Dispose();
        }
        //显示游戏类别方法
        private void ShowCategory()
        {
            //获取游戏类别数据
            DataTable dt = ds.Tables[0];
            //创建根节点
            TreeNode root = new TreeNode("游戏类别");
            root.Tag = 0;//保存编号
            //将根节点连接到TreeView控件上
            this.treeView1.Nodes.Add(root);
            //循环获取每行类别数据并创建树节点
            foreach(DataRow row in dt.Rows)
            {
                string name = Convert.ToString(row["Name"]);
                //创建新类别节点
                TreeNode node = new TreeNode(name);
                //保存游戏类别编号
                node.Tag = Convert.ToInt32(row["ID"]);
                root.Nodes.Add(node);
            }
            //展开TreeView控件上的所有节点
            this.treeView1.ExpandAll();
        }
        private void ShowGame()
        {
            //获取游戏数据
            DataTable dt = ds.Tables[1];
            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.DataSource = dt;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //连接数据库填充数据集
            connDatabase();
            //显示游戏类别
            ShowCategory();
            //显示游戏列表
            ShowGame();
        }
       
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //获取选中的树节点
            TreeNode node = e.Node;
            //获取类型编号
            int id = Convert.ToInt32(node.Tag);
            if (id!=0)
            {
                DataView dv = ds.Tables[1].DefaultView;
                //根据类别ID筛选游戏数据
                dv.RowFilter = string.Format("Categoryid={0}", id);
                this.dataGridView1.DataSource = dv;
            }
        }
    }
}
